The present invention relates to programmable logic devices (PLDs), and more particularly to techniques for preventing the unauthorized modification of programmed data, such as data defining the architecture of PLDs, in a simple, yet effective manner.
Digital systems such as computers typically are fabricated from many logic and memory integrated circuits. A goal of microelectronic integration is to fit the memory and logic circuits of a system onto the fewest possible integrated circuits, to minimize the cost and increase the system speed and reliability.
Useful memories are relatively easy to define, but logic circuits present a problem to circuit manufacturers, who cannot afford to make logic circuits which are perfectly tailored to the specific needs of every customer. Instead, general purpose integrated circuits are defined which can serve as many roles as possible. For example, the microprocessor allows logic functions to be expressed in software, and together with memory units and standard peripheral devices, is capable of consolidating much of the logic in a digital system. However, random logic circuits are still required to tie these elements of the system together.
Several schemes are used to implement these random logic circuits. One solution is standard logic, such as transistor-transistor logic (TTL). While TTL integrated circuits are versatile because they integrate only a relatively small number of commonly used logic functions, large numbers of TTL circuits are typically required for a specific application.
Other alternatives include fully custom logic circuits and semi-custom logic circuits, such as gate arrays. Custom logic circuits, precisely tailored to the needs of a specific application, allow the implementation of specific circuit architectures, dramatically reducing the number of parts required for a system. However, custom logic devices require significantly greater engineering time and effort.
Semi-custom gate arrays are less expensive to develop and offer faster turnaround because the circuits are typically identical except for a few final-stage steps, which are customized according to the system design specification. However, semi-custom gate arrays are less dense, so that it takes more gate array circuits than custom circuits to implement a given amount of random logic.
Between the extremes of general purpose devices on the one hand and custom and semi-custom gate arrays on the other, are programmable logic devices (PLDs). PLDs provide a flexible architecture, user-programmed through on-circuit fuses or switches, to perform specific functions for a given application. PLDs can be purchased "off the shelf" like standard logic gates, but can be custom tailored like gate arrays.
To use PLDs, system designers draft equations describing how the hardware is to perform, and enter the equations into a PLD programming machine. The unprogrammed PLDs are inserted into the machine, which interprets the equations and provides appropriate signals to the device to blow the appropriate fuses or set the appropriate switches such that the PLD will perform the desired logic function in the user's system. The PLD typically includes hundreds or thousands of the fuses or switches, arranged in one or more matrices to facilitate their manufacture and programming. It is known to employ security fuse circuits in bipolar PLDs which prevent interrogation and alteration of the data programmed into the device AND array.
The PLDs on the market today comprise many different products for performing specific functions. Thus, the PLD manufacturers have heretofore been required to manufacture and inventory each of the products individually. The cost of each of the types of PLDs differs greatly as a function of logic complexity and manufacturability.
The assignee of the present invention has recently developed a novel single-chip PLD employing electrically erasable cells which is capable of being configured (and reconfigured) to a plurality of specific devices by means of programmable architecture bits. Thus, the device can take the place of many other PLDs as a result of its versatility. Yet, while such a versatile product will command a premium price for many applications, in many situations it is desirable to market a less versatile product at a lower price. There is therefore a need to provide a security device, which may not be defeated by the user, allowing the manufacturer to lock a reconfigurable PLD into one specific configuration.
Such a security device could also be employed as a circuit yield enhancement tool. Devices which have manufacturing defects or which cannot meet performance specifications in one or more configurations may be locked into an operable configuration.
It is therefore an object of the invention to provide a programmable architecture security fuse for a reconfigurable PLD which may be set after device fabrication, and thereafter not defeated by the user.
Another object is to provide a one time programmable architecture security circuit which allows the manufacturer of a reconfigurable PLD to configure the device, but thereafter defeats any attempts to alter the PLD architecture.
A further object is to provide a security circuit protecting programmed data which is resistant to inadvertent programming by high temperature charge transfer effects during device fabrication and/or packaging.
Another object is to provide a one time programmable architecture security fuse with a regenerative erase function.